package com.smart.config.core;

import com.smart.config.model.ListenerModel;

import java.util.List;
import java.util.function.Consumer;

/**
 * @Author xiaoqiang
 * @Version ConfigManager.java, v 0.1 2025年03月17日 23:21 xiaoqiang
 * @Description: TODO
 */
public interface ConfigManager {

    /**
     * 获取配置
     * @param key
     * @param listener 监听器
     * @return
     */
    void registerListener(String key, ListenerModel listener);


    /**
     * 当收到通知时，通知监听器
     * @param key
     * @param value
     */
    void notifyListener(String key,Long version, String value);


    /**
     *
     * @param key
     * @return
     */
    Object getValue(String key);


    List<ListenerModel> getListeners(String key);

}
